using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using MakeIT.Framework.Util;
using MakeIT.Look.Imagem.Entidades;
using MakeIT.Look.Imagem.Negocios;

namespace MakeIT.Look.Imagem.Apresentacao
{
	public partial class CadastroBooklki : System.Web.UI.Page
	{

		UsuarioVO usuarioVO = null;
		protected LookDAOT LookDAOT = null;

		protected void Page_Load(object sender, EventArgs e)
		{
			this.LookDAOT = new LookDAOT();
			usuarioVO = (UsuarioVO)this.Session["userActive"];

			if (!IsPostBack)
			{
				Util.HabilitarCampos(false, this.panelCad);
				atualizarDdlIdPlayList(null, null);

				this.panelBooklkifoto.Enabled = false;

				this.panelBooklkivideo.Enabled = false;
			}

		}

		protected void Page_Unload(object sender, EventArgs e)
		{
			try
			{
				if (this.LookDAOT != null)
					this.LookDAOT.closeDAO();
			}
			catch (Exception ex) {}
		}

		protected void grvResultado_PageIndexChanging(object sender, GridViewPageEventArgs e)
		{
			this.grvResultado.PageIndex = e.NewPageIndex;
			btnPesquisa_Click(null, null);
		}
		protected void atualizarDdlIdPlayList(object sender, ImageClickEventArgs e)
		{
			List<PlaylistVO> idPlayListCadVOs = new List<PlaylistVO>();
			PlaylistVO idPlayListCadVO = PlaylistVO.CreateVO();
			idPlayListCadVO.idPlayList = -1;
			idPlayListCadVO.playlist = "";
			idPlayListCadVOs.Add(idPlayListCadVO);
			idPlayListCadVOs.AddRange(this.LookDAOT.getPlaylists());
			Util.CarregarCombo(this.ddlCadIdPlayList, idPlayListCadVOs);

		}

		/// <summary>
		/// Manipula o evento do botão btnSalvar
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnSalvar_Click(object sender, EventArgs e)
		{

			//Declara objetos
			BooklkiVO booklkiVO = null;
			bool novoRegistro = false;

			try
			{
				//Verifica se o ID é nulo, se sim = cadastro novo
				if (string.IsNullOrEmpty(this.txtCadIdBookLki.Text))
				{
					booklkiVO = BooklkiVO.CreateVO();
					booklkiVO.cadastro = DateTime.Now;
					booklkiVO.cadastradoPor = usuarioVO.user;

					novoRegistro = true;

				}
				//Recupera dados para serem alterados
				else
				{
					//Recupera dados
					booklkiVO = this.LookDAOT.getBooklki(Int32.Parse(this.txtCadIdBookLki.Text));
                }

                if (DateTime.Parse(this.txtCadVigenciaIni.Text).CompareTo(DateTime.Parse(this.txtCadVigenciaFin.Text)) > 0)
                {
                    Util.ExibeAlert(this, "A Data Inicial de Vigência deve ser menor ou igual à Data Final.");
                    return;
                }

				booklkiVO.bookLki = this.txtCadBookLki.Text;
				booklkiVO.vigenciaIni = DateTime.Parse(this.txtCadVigenciaIni.Text);
				booklkiVO.vigenciaFin = DateTime.Parse(this.txtCadVigenciaFin.Text);
				booklkiVO.ativo = this.ddlCadAtivo.SelectedValue.Equals("S");
				if(this.ddlCadIdPlayList.SelectedValue.Equals("-1"))
					booklkiVO.idPlayList = null;
				else
					booklkiVO.idPlayList = Int32.Parse(this.ddlCadIdPlayList.SelectedValue);
				booklkiVO.home = this.ddlCadHome.SelectedValue.Equals("S");
				booklkiVO.evento = this.ddlCadEvento.SelectedValue.Equals("S");
				booklkiVO.filme = this.ddlCadFilme.SelectedValue.Equals("S");
				booklkiVO.ensaio = this.ddlCadEnsaio.SelectedValue.Equals("S");
				booklkiVO.edicao = DateTime.Now;
				booklkiVO.editadoPor = usuarioVO.user;

				//Chama metodo para salvar ou criar novo registro
				if (novoRegistro)
					booklkiVO.idBookLki = (int)this.LookDAOT.newBooklki(booklkiVO);
				else
					this.LookDAOT.setBooklki(booklkiVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro salvo com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Atualiza formulario, apos salvar os dados
				this.txtCadIdBookLki.Text = booklkiVO.idBookLki.ToString();
				this.ltCadastradoPor.Text = booklkiVO.cadastradoPor;
				this.ltEditadoPor.Text = booklkiVO.editadoPor;
				this.ltDataCadastro.Text = booklkiVO.cadastro.ToString("dd/MM/yyyy");
				this.ltDataEdicao.Text = booklkiVO.edicao.ToString("dd/MM/yyyy");

				//habilita Booklkifoto
				if (!this.panelBooklkifoto.Enabled)
				{
					this.ltCadBooklkifotoBooklki.Text = booklkiVO.ToString();
					Util.HabilitarCampos(false, this.panelBooklkifoto);
					this.panelBooklkifoto.Enabled = true;
					this.btnCadBooklkifotoSalvar.Enabled = false;
					this.btnCadBooklkifotoEditar.Enabled = false;
					this.btnCadBooklkifotoExcluir.Enabled = false;
					this.btnCadBooklkifotoNovo.Enabled = true;
					//Habilita botoes da imagem foto
					this.btCadBooklkifotoFotoRemover.Enabled = true;
					this.afuCadBooklkifotoFotoUpload.Enabled = true;
					this.btCadBooklkifotoFotoVisualizar.Enabled = true;
				}
				//habilita Booklkivideo
				if (!this.panelBooklkivideo.Enabled)
				{
					this.ltCadBooklkivideoBooklki.Text = booklkiVO.ToString();
					Util.HabilitarCampos(false, this.panelBooklkivideo);
					this.panelBooklkivideo.Enabled = true;
					this.btnCadBooklkivideoSalvar.Enabled = false;
					this.btnCadBooklkivideoEditar.Enabled = false;
					this.btnCadBooklkivideoExcluir.Enabled = false;
					this.btnCadBooklkivideoNovo.Enabled = true;
				}
			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		/// <summary>
		/// Manipula o evento do botão btnPesquisa
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnPesquisa_Click(object sender, EventArgs e)
		{

			//Declara objetos
			int? idBookLki = null;
			string bookLki = null;
			DateTime? vigenciaIni = null;
			DateTime? vigenciaFin = null;
			bool? ativo = null;
			bool? home = null;
			bool? evento = null;
			bool? filme = null;
			bool? ensaio = null;

			try
			{

				if (!string.IsNullOrEmpty(this.txtIdBookLki.Text))
				{
					idBookLki = Int32.Parse(this.txtIdBookLki.Text);
				}

				if (!string.IsNullOrEmpty(this.txtBookLki.Text))
				{
					bookLki = this.txtBookLki.Text;
				}

				if (!string.IsNullOrEmpty(this.txtVigenciaIni.Text))
				{
					vigenciaIni = DateTime.Parse(this.txtVigenciaIni.Text);
				}

				if (!string.IsNullOrEmpty(this.txtVigenciaFin.Text))
				{
					vigenciaFin = DateTime.Parse(this.txtVigenciaFin.Text);
				}

				if(!this.ddlAtivo.SelectedValue.Equals(" "))
				{
					ativo = this.ddlAtivo.SelectedValue.Equals("S");
				}

				if(!this.ddlHome.SelectedValue.Equals(" "))
				{
					home = this.ddlHome.SelectedValue.Equals("S");
				}

				if(!this.ddlEvento.SelectedValue.Equals(" "))
				{
					evento = this.ddlEvento.SelectedValue.Equals("S");
				}

				if(!this.ddlFilme.SelectedValue.Equals(" "))
				{
					filme = this.ddlFilme.SelectedValue.Equals("S");
				}

				if(!this.ddlEnsaio.SelectedValue.Equals(" "))
				{
					ensaio = this.ddlEnsaio.SelectedValue.Equals("S");
				}


				//Recupera a lista de registros segundo a pesquisa
				this.grvResultado.DataSource = this.LookDAOT.getBooklkis(idBookLki, null, bookLki, vigenciaIni, vigenciaFin, ativo, home, evento, filme, ensaio);

				//Vincula os dados
				this.grvResultado.DataBind();
			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		/// <summary>
		/// Manipula o evento do botão btnCancelar
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnCancelar_Click(object sender, EventArgs e)
		{
			//Volta para a tab page de pesquisa
			//this.tabBooklki.ActiveTabIndex = 0;

			// Desabilita os campos para edição
			Util.HabilitarCampos(false, this.panelCad);

			// Destrava botão de edição
			this.btnEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadIdBookLki.Text));

			// Destrava botão de exclusao
			this.btnExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadIdBookLki.Text));

			// Detrava botão de novo
			this.btnNovo.Enabled = true;

			// Desabilita o botão salvar
			this.btnSalvar.Enabled = false;

		}

		protected void imgbVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			BooklkiVO booklkiVO = null;
			int idBookLki = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idBookLki = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				booklkiVO = this.LookDAOT.getBooklki(idBookLki);

				this.txtCadIdBookLki.Text = booklkiVO.idBookLki.ToString();
				this.txtCadBookLki.Text = booklkiVO.bookLki;
				this.txtCadVigenciaIni.Text = booklkiVO.vigenciaIni.ToString("dd/MM/yyyy");
				this.txtCadVigenciaFin.Text = booklkiVO.vigenciaFin.ToString("dd/MM/yyyy");
				this.ddlCadAtivo.SelectedValue = (booklkiVO.ativo==null?" ":(booklkiVO.ativo.Value?"S":"N"));
				if(booklkiVO.idPlayList==null)
					this.ddlCadIdPlayList.SelectedValue = "-1";
				else
					this.ddlCadIdPlayList.SelectedValue = booklkiVO.idPlayList.Value.ToString();
				this.ddlCadHome.SelectedValue = (booklkiVO.home==null?" ":(booklkiVO.home.Value?"S":"N"));
				this.ddlCadEvento.SelectedValue = (booklkiVO.evento==null?" ":(booklkiVO.evento.Value?"S":"N"));
				this.ddlCadFilme.SelectedValue = (booklkiVO.filme==null?" ":(booklkiVO.filme.Value?"S":"N"));
				this.ddlCadEnsaio.SelectedValue = (booklkiVO.ensaio==null?" ":(booklkiVO.ensaio.Value?"S":"N"));
				this.ltCadastradoPor.Text = booklkiVO.cadastradoPor;
				this.ltEditadoPor.Text = booklkiVO.editadoPor;
				this.ltDataCadastro.Text = booklkiVO.cadastro.ToString("dd/MM/yyyy");
				this.ltDataEdicao.Text = booklkiVO.edicao.ToString("dd/MM/yyyy");

				//recupera Booklkifoto
				Util.LimparCampos(this.panelBooklkifoto);
				Util.HabilitarCampos(false, this.panelBooklkifoto);
				this.panelBooklkifoto.Enabled = true;
				this.ltCadBooklkifotoBooklki.Text = booklkiVO.ToString();
				this.ltBooklkifotoCadastradoPor.Text = "";
				this.ltBooklkifotoDataCadastro.Text = "";
				this.ltBooklkifotoDataEdicao.Text = "";
				this.ltBooklkifotoEditadoPor.Text = "";
				this.btnCadBooklkifotoSalvar.Enabled = false;
				this.btnCadBooklkifotoEditar.Enabled = false;
				this.btnCadBooklkifotoExcluir.Enabled = false;
				this.btnCadBooklkifotoNovo.Enabled = true;
				this.btCadBooklkifotoFotoRemover.Enabled = false;
				this.afuCadBooklkifotoFotoUpload.Enabled = false;
				this.btCadBooklkifotoFotoVisualizar.Enabled = false;
				this.grvCadBooklkixBooklkifoto.DataSource = this.LookDAOT.getBooklkifotos(null, booklkiVO.idBookLki);
				this.grvCadBooklkixBooklkifoto.DataBind();

				//recupera Booklkivideo
				Util.LimparCampos(this.panelBooklkivideo);
				Util.HabilitarCampos(false, this.panelBooklkivideo);
				this.panelBooklkivideo.Enabled = true;
				this.ltCadBooklkivideoBooklki.Text = booklkiVO.ToString();
				this.ltBooklkivideoCadastradoPor.Text = "";
				this.ltBooklkivideoDataCadastro.Text = "";
				this.ltBooklkivideoDataEdicao.Text = "";
				this.ltBooklkivideoEditadoPor.Text = "";
				this.btnCadBooklkivideoSalvar.Enabled = false;
				this.btnCadBooklkivideoEditar.Enabled = false;
				this.btnCadBooklkivideoExcluir.Enabled = false;
				this.btnCadBooklkivideoNovo.Enabled = true;
				this.grvCadBooklkixBooklkivideo.DataSource = this.LookDAOT.getBooklkivideos(null, null, booklkiVO.idBookLki);
				this.grvCadBooklkixBooklkivideo.DataBind();

				//Habilita tab page do cadastro
				this.tabBooklki.ActiveTabIndex = 1;

				//Desabilita campos para edição
				Util.HabilitarCampos(false, this.panelCad);

				//Desabilita botão salvar
				this.btnSalvar.Enabled = false;

				//Habilita botão editar
				this.btnEditar.Enabled = true;

				//Habilita botão excluir
				this.btnExcluir.Enabled = true;

				//Habilita botão novo
				this.btnNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		// <summary>
		// Manipula o evento editar do web form
		// </summary>
		// <param name="sender">Objeto disparador de evento</param>
		// <param name="e">Argumento do evento</param>
		protected void btnEditar_Click(object sender, EventArgs e)
		{
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelCad);

			// Trava apenas os text box da PK
			this.txtCadIdBookLki.Enabled = false;

			// Trava botão de edição
			this.btnEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnExcluir.Enabled = false;

			// Trava botão de novo
			this.btnNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnSalvar.Enabled = true;

		}

		protected void btnNovo_Click(object sender, EventArgs e)
		{
			//Limpa formulario, para a entrada de novo registro
			Util.LimparCampos(this.panelCad);
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelCad);

			this.ltCadastradoPor.Text = "";
			this.ltEditadoPor.Text = "";
			this.ltDataCadastro.Text = "";
			this.ltDataEdicao.Text = "";

			// Limpa Booklkifoto
			Util.LimparCampos(this.panelBooklkifoto);
			Util.HabilitarCampos(false, this.panelBooklkifoto);
			this.ltCadBooklkifotoBooklki.Text = "";
			this.ltBooklkifotoCadastradoPor.Text = "";
			this.ltBooklkifotoDataCadastro.Text = "";
			this.ltBooklkifotoDataEdicao.Text = "";
			this.ltBooklkifotoEditadoPor.Text = "";
			this.grvCadBooklkixBooklkifoto.DataSource = null;
			this.grvCadBooklkixBooklkifoto.DataBind();
			this.panelBooklkifoto.Enabled = false;
			this.btnCadBooklkifotoSalvar.Enabled = false;
			this.btnCadBooklkifotoEditar.Enabled = false;
			this.btnCadBooklkifotoExcluir.Enabled = false;
			this.btnCadBooklkifotoNovo.Enabled = false;
			this.btCadBooklkifotoFotoRemover.Enabled = false;
			this.afuCadBooklkifotoFotoUpload.Enabled = false;
			this.btCadBooklkifotoFotoVisualizar.Enabled = false;

			// Limpa Booklkivideo
			Util.LimparCampos(this.panelBooklkivideo);
			Util.HabilitarCampos(false, this.panelBooklkivideo);
			this.ltCadBooklkivideoBooklki.Text = "";
			this.ltBooklkivideoCadastradoPor.Text = "";
			this.ltBooklkivideoDataCadastro.Text = "";
			this.ltBooklkivideoDataEdicao.Text = "";
			this.ltBooklkivideoEditadoPor.Text = "";
			this.grvCadBooklkixBooklkivideo.DataSource = null;
			this.grvCadBooklkixBooklkivideo.DataBind();
			this.panelBooklkivideo.Enabled = false;
			this.btnCadBooklkivideoSalvar.Enabled = false;
			this.btnCadBooklkivideoEditar.Enabled = false;
			this.btnCadBooklkivideoExcluir.Enabled = false;
			this.btnCadBooklkivideoNovo.Enabled = false;

			// Trava apenas os text box da PK
			this.txtCadIdBookLki.Enabled = false;

			// Trava botão de edição
			this.btnEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnExcluir.Enabled = false;

			// Trava botão de novo
			this.btnNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnSalvar.Enabled = true;

		}

		protected void btnExcluir_Click(object sender, EventArgs e)
		{
			//Declara objetos
			BooklkiVO booklkiVO = null;

			try
			{
				//Cria objeto
				booklkiVO = BooklkiVO.CreateVO();
				booklkiVO.idBookLki = Int32.Parse(this.txtCadIdBookLki.Text);

				// Remove Booklkifoto
				List<BooklkifotoVO> booklkifotoVOs = LookDAOT.getBooklkifotos(null, booklkiVO.idBookLki);
				foreach (BooklkifotoVO booklkifotoVO in booklkifotoVOs)
					this.LookDAOT.delBooklkifoto(booklkifotoVO);

				// Remove Booklkivideo
				List<BooklkivideoVO> booklkivideoVOs = LookDAOT.getBooklkivideos(null, null, booklkiVO.idBookLki);
				foreach (BooklkivideoVO booklkivideoVO in booklkivideoVOs)
					this.LookDAOT.delBooklkivideo(booklkivideoVO);

				//Chama metodo para excluir registro
				this.LookDAOT.delBooklki(booklkiVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro excluido com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Limpa formulario, apos salvar os dados
				Util.LimparCampos(this.panelCad);
				//Limpa Booklkifoto
				Util.LimparCampos(this.panelBooklkifoto);
				Util.HabilitarCampos(false, this.panelBooklkifoto);
				this.panelBooklkifoto.Enabled = false;
				this.ltCadBooklkifotoBooklki.Text = "";
				this.ltBooklkifotoCadastradoPor.Text = "";
				this.ltBooklkifotoDataCadastro.Text = "";
				this.ltBooklkifotoDataEdicao.Text = "";
				this.ltBooklkifotoEditadoPor.Text = "";
				this.grvCadBooklkixBooklkifoto.DataSource = null;
				this.grvCadBooklkixBooklkifoto.DataBind();
				this.btnCadBooklkifotoSalvar.Enabled = false;
				this.btnCadBooklkifotoEditar.Enabled = false;
				this.btnCadBooklkifotoExcluir.Enabled = false;
				this.btnCadBooklkifotoNovo.Enabled = false;
				this.btCadBooklkifotoFotoRemover.Enabled = false;
				this.afuCadBooklkifotoFotoUpload.Enabled = false;
				this.btCadBooklkifotoFotoVisualizar.Enabled = false;

				//Limpa Booklkivideo
				Util.LimparCampos(this.panelBooklkivideo);
				Util.HabilitarCampos(false, this.panelBooklkivideo);
				this.panelBooklkivideo.Enabled = false;
				this.ltCadBooklkivideoBooklki.Text = "";
				this.ltBooklkivideoCadastradoPor.Text = "";
				this.ltBooklkivideoDataCadastro.Text = "";
				this.ltBooklkivideoDataEdicao.Text = "";
				this.ltBooklkivideoEditadoPor.Text = "";
				this.grvCadBooklkixBooklkivideo.DataSource = null;
				this.grvCadBooklkixBooklkivideo.DataBind();
				this.btnCadBooklkivideoSalvar.Enabled = false;
				this.btnCadBooklkivideoEditar.Enabled = false;
				this.btnCadBooklkivideoExcluir.Enabled = false;
				this.btnCadBooklkivideoNovo.Enabled = false;

				this.ltCadastradoPor.Text = "";
				this.ltEditadoPor.Text = "";
				this.ltDataCadastro.Text = "";
				this.ltDataEdicao.Text = "";

				// Trava botão de edição
				this.btnEditar.Enabled = false;

				// Trava botão de exclusao
				this.btnExcluir.Enabled = false;

				// Desabilita o botão salvar
				this.btnSalvar.Enabled = false;

				// Habilita o botao novo
				this.btnNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
			
		}
		#region Imagens
		protected void ibtPanelFotoClose_Click(object sender, EventArgs e)
		{
			this.PanelFoto.Visible = false;
		}

		#region Imagem Foto
		protected void btCadBooklkifotoFotoVisualizar_Click(object sender, EventArgs e)
		{
			BooklkifotoVO booklkifotoVO = LookDAOT.getBooklkifoto(Int32.Parse(this.txtCadBooklkifotoIdBookLkiFoto.Text));
			this.ltCadBooklkifotoFotoNome.Text = booklkifotoVO.fotoNome;
			this.ltCadBooklkifotoFotoMime.Text = booklkifotoVO.fotoMime;

			this.imgPanelFoto.ImageUrl = "~/DownBooklkifotoFoto.aspx?idBookLkiFoto=" + booklkifotoVO.idBookLkiFoto.ToString()+"&controll="+DateTime.Now.Ticks.ToString();
			this.lblPanelFoto.Text = this.ltCadBooklkifotoFotoNome.Text + "( " + this.ltCadBooklkifotoFotoMime.Text + " )";
			this.PanelFoto.Visible = true;
		}
		protected void ProcessafuCadBooklkifotoFotoUpload(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
		{
			// upload da imagem
			if (afuCadBooklkifotoFotoUpload.PostedFile.FileName.Length > 0)
			{
				BooklkifotoVO booklkifotoVO = BooklkifotoVO.CreateVO();
				booklkifotoVO.idBookLkiFoto = Int32.Parse(this.txtCadBooklkifotoIdBookLkiFoto.Text);
				booklkifotoVO.fotoMime = afuCadBooklkifotoFotoUpload.PostedFile.ContentType;
				booklkifotoVO.fotoNome = afuCadBooklkifotoFotoUpload.PostedFile.FileName;

				System.IO.Stream st = afuCadBooklkifotoFotoUpload.PostedFile.InputStream;
				byte[] fb = new byte[st.Length];

				fb = afuCadBooklkifotoFotoUpload.GetBytesFromStream(st);

				booklkifotoVO.foto = fb;

				booklkifotoVO.edicao = DateTime.Now;
				booklkifotoVO.editadoPor = usuarioVO.user;
				this.LookDAOT.setBooklkifotoFoto(booklkifotoVO);

			}

		}
		protected void btCadBooklkifotoFotoRemover_Click(object sender, EventArgs e)
		{
			BooklkifotoVO booklkifotoVO = BooklkifotoVO.CreateVO();
			booklkifotoVO.idBookLkiFoto = Int32.Parse(this.txtCadBooklkifotoIdBookLkiFoto.Text);
			booklkifotoVO.foto = null;
			booklkifotoVO.fotoMime = null;
			booklkifotoVO.fotoNome = null;
			this.LookDAOT.setBooklkifotoFoto(booklkifotoVO);
			this.ltCadBooklkifotoFotoMime.Text = "";
			this.ltCadBooklkifotoFotoNome.Text = "";

			// Exibe msg de sucesso ao salvar registro
			Util.ExibeAlert(this, "Imagem removida!");
		}

		#endregion
		#endregion
		#region BooklkiXBooklkifoto
		protected void btnCadBooklkifotoSalvar_Click(object sender, EventArgs e)
		{

			//Declara objetos
			BooklkifotoVO booklkifotoVO = null;
			bool novoRegistro = false;

			try
			{
				//Verifica se o ID é nulo, se sim = cadastro novo
				if (string.IsNullOrEmpty(this.txtCadBooklkifotoIdBookLkiFoto.Text))
				{
					booklkifotoVO = BooklkifotoVO.CreateVO();
					booklkifotoVO.cadastro = DateTime.Now;
					booklkifotoVO.cadastradoPor = usuarioVO.user;

					novoRegistro = true;

				}
				//Recupera dados para serem alterados
				else
				{
					//Recupera dados
					booklkifotoVO = this.LookDAOT.getBooklkifoto(Int32.Parse(this.txtCadBooklkifotoIdBookLkiFoto.Text));
				}

				booklkifotoVO.idBookLki = Int32.Parse(this.txtCadIdBookLki.Text);
				booklkifotoVO.destaque = this.ddlCadBooklkifotoDestaque.SelectedValue.Equals("S");
				booklkifotoVO.edicao = DateTime.Now;
				booklkifotoVO.editadoPor = usuarioVO.user;

				//Chama metodo para salvar ou criar novo registro
				if (novoRegistro)
					booklkifotoVO.idBookLkiFoto = (int)this.LookDAOT.newBooklkifoto(booklkifotoVO);
				else
					this.LookDAOT.setBooklkifoto(booklkifotoVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro salvo com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Atualiza formulario, apos salvar os dados
				this.txtCadBooklkifotoIdBookLkiFoto.Text = booklkifotoVO.idBookLkiFoto.ToString();
				this.ltCadBooklkifotoFotoNome.Text = booklkifotoVO.fotoNome;
				this.ltCadBooklkifotoFotoMime.Text = booklkifotoVO.fotoMime;
				this.ltBooklkifotoCadastradoPor.Text = booklkifotoVO.cadastradoPor;
				this.ltBooklkifotoEditadoPor.Text = booklkifotoVO.editadoPor;
				this.ltBooklkifotoDataCadastro.Text = booklkifotoVO.cadastro.ToString("dd/MM/yyyy");
				this.ltBooklkifotoDataEdicao.Text = booklkifotoVO.edicao.ToString("dd/MM/yyyy");

				//Habilita botoes da imagem foto
				this.btCadBooklkifotoFotoRemover.Enabled = true;
				this.afuCadBooklkifotoFotoUpload.Enabled = true;
				this.btCadBooklkifotoFotoVisualizar.Enabled = true;
				this.grvCadBooklkixBooklkifoto.DataSource = this.LookDAOT.getBooklkifotos(null, Int32.Parse(this.txtCadIdBookLki.Text));
				this.grvCadBooklkixBooklkifoto.DataBind();

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		protected void btnCadBooklkifotoCancelar_Click(object sender, EventArgs e)
		{
			//Volta para a tab page de pesquisa
			//this.tabBooklki.ActiveTabIndex = 0;

			// Desabilita os campos para edição
			Util.HabilitarCampos(false, this.panelBooklkifoto);

			// Destrava botão de edição
			this.btnCadBooklkifotoEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadBooklkifotoIdBookLkiFoto.Text));

			// Destrava botão de exclusao
			this.btnCadBooklkifotoExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadBooklkifotoIdBookLkiFoto.Text));

			// Detrava botão de novo
			this.btnCadBooklkifotoNovo.Enabled = true;

			// Desabilita o botão salvar
			this.btnCadBooklkifotoSalvar.Enabled = false;

			// Desabilita botões da imagem foto
			this.btCadBooklkifotoFotoRemover.Enabled = false;
			this.afuCadBooklkifotoFotoUpload.Enabled = false;
			this.btCadBooklkifotoFotoVisualizar.Enabled = (!string.IsNullOrEmpty(this.ltCadBooklkifotoFotoNome.Text));

		}

		protected void btnCadBooklkifotoEditar_Click(object sender, EventArgs e)
		{
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelBooklkifoto);

			// Trava apenas os text box da PK
			this.txtCadBooklkifotoIdBookLkiFoto.Enabled = false;

			// Trava botão de edição
			this.btnCadBooklkifotoEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadBooklkifotoExcluir.Enabled = false;

			// Trava botão de novo
			this.btnCadBooklkifotoNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadBooklkifotoSalvar.Enabled = true;

			// Habilita botões da imagem foto
			this.btCadBooklkifotoFotoRemover.Enabled = true;
			this.afuCadBooklkifotoFotoUpload.Enabled = true;
			this.btCadBooklkifotoFotoVisualizar.Enabled = true;

		}

		protected void btnCadBooklkifotoExcluir_Click(object sender, EventArgs e)
		{
			//Declara objetos
			BooklkifotoVO booklkifotoVO = null;

			try
			{
				//Cria objeto
				booklkifotoVO = BooklkifotoVO.CreateVO();
				booklkifotoVO.idBookLkiFoto = Int32.Parse(this.txtCadBooklkifotoIdBookLkiFoto.Text);

				//Chama metodo para excluir registro
				this.LookDAOT.delBooklkifoto(booklkifotoVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro excluido com sucesso!");

				//Limpa formulario, apos salvar os dados
				Util.LimparCampos(this.panelBooklkifoto);
				Util.HabilitarCampos(false, this.panelBooklkifoto);
				this.ltCadBooklkifotoFotoNome.Text = "";
				this.ltCadBooklkifotoFotoMime.Text = "";
				this.grvCadBooklkixBooklkifoto.DataSource = this.LookDAOT.getBooklkifotos(null, Int32.Parse(this.txtCadIdBookLki.Text));
				this.grvCadBooklkixBooklkifoto.DataBind();

				this.ltBooklkifotoCadastradoPor.Text = "";
				this.ltBooklkifotoEditadoPor.Text = "";
				this.ltBooklkifotoDataCadastro.Text = "";
				this.ltBooklkifotoDataEdicao.Text = "";

				// Trava botão de edição
				this.btnCadBooklkifotoEditar.Enabled = false;

				// Trava botão de exclusao
				this.btnCadBooklkifotoExcluir.Enabled = false;

				// Desabilita o botão salvar
				this.btnCadBooklkifotoSalvar.Enabled = false;

				// Habilita o botao novo
				this.btnCadBooklkifotoNovo.Enabled = true;

				// Desabilita botões da imagem foto
				this.btCadBooklkifotoFotoRemover.Enabled = false;
				this.afuCadBooklkifotoFotoUpload.Enabled = false;
				this.btCadBooklkifotoFotoVisualizar.Enabled = false;

			}
			catch (Exception ex)
			{

				throw ex;
			}
			
		}
		protected void btnCadBooklkifotoNovo_Click(object sender, EventArgs e)
		{
			//Limpa formulario, para a entrada de novo registro
			Util.LimparCampos(this.panelBooklkifoto);
			// Habilita os campos para edição
				Util.HabilitarCampos(true, this.panelBooklkifoto);

			this.ltCadBooklkifotoFotoNome.Text = "";
			this.ltCadBooklkifotoFotoMime.Text = "";
			this.ltBooklkifotoCadastradoPor.Text = "";
			this.ltBooklkifotoEditadoPor.Text = "";
			this.ltBooklkifotoDataCadastro.Text = "";
			this.ltBooklkifotoDataEdicao.Text = "";

			// Trava apenas os text box da PK
			this.txtCadBooklkifotoIdBookLkiFoto.Enabled = false;

			// Trava botão de edição
			this.btnCadBooklkifotoEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadBooklkifotoExcluir.Enabled = false;

			// Trava botão de novo
			this.btnCadBooklkifotoNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadBooklkifotoSalvar.Enabled = true;

			// Desabilita botões da imagem foto
			this.btCadBooklkifotoFotoRemover.Enabled = false;
			this.afuCadBooklkifotoFotoUpload.Enabled = false;
			this.btCadBooklkifotoFotoVisualizar.Enabled = false;

		}

		protected void imgbCadBooklkifotoVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			BooklkifotoVO booklkifotoVO = null;
			int idBookLkiFoto = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idBookLkiFoto = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				booklkifotoVO = this.LookDAOT.getBooklkifoto(idBookLkiFoto);

				this.txtCadBooklkifotoIdBookLkiFoto.Text = booklkifotoVO.idBookLkiFoto.ToString();
				this.ddlCadBooklkifotoDestaque.SelectedValue = (booklkifotoVO.destaque==null?" ":(booklkifotoVO.destaque.Value?"S":"N"));
				this.ltCadBooklkifotoFotoNome.Text = booklkifotoVO.fotoNome;
				this.ltCadBooklkifotoFotoMime.Text = booklkifotoVO.fotoMime;
				this.ltBooklkifotoCadastradoPor.Text = booklkifotoVO.cadastradoPor;
				this.ltBooklkifotoEditadoPor.Text = booklkifotoVO.editadoPor;
				this.ltBooklkifotoDataCadastro.Text = booklkifotoVO.cadastro.ToString("dd/MM/yyyy");
				this.ltBooklkifotoDataEdicao.Text = booklkifotoVO.edicao.ToString("dd/MM/yyyy");

				//Desabilita campos para edição
				Util.HabilitarCampos(false, this.panelBooklkifoto);

				//Desabilita botão salvar
				this.btnCadBooklkifotoSalvar.Enabled = false;

				//Habilita botão editar
				this.btnCadBooklkifotoEditar.Enabled = true;

				//Habilita botão excluir
				this.btnCadBooklkifotoExcluir.Enabled = true;

				//Habilita botão novo
				this.btnCadBooklkifotoNovo.Enabled = true;

				// Desabilita botões da imagem foto
				this.btCadBooklkifotoFotoRemover.Enabled = false;
				this.afuCadBooklkifotoFotoUpload.Enabled = false;
				this.btCadBooklkifotoFotoVisualizar.Enabled = (!string.IsNullOrEmpty(this.ltCadBooklkifotoFotoNome.Text));

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		#endregion
		#region BooklkiXBooklkivideo
		protected void btnCadBooklkivideoSalvar_Click(object sender, EventArgs e)
		{

			//Declara objetos
			BooklkivideoVO booklkivideoVO = null;
			bool novoRegistro = false;

			try
			{
				//Verifica se o ID é nulo, se sim = cadastro novo
				if (string.IsNullOrEmpty(this.txtCadBooklkivideoIdBookLkiVideo.Text))
				{
					booklkivideoVO = BooklkivideoVO.CreateVO();
					booklkivideoVO.cadastro = DateTime.Now;
					booklkivideoVO.cadastradoPor = usuarioVO.user;

					novoRegistro = true;

				}
				//Recupera dados para serem alterados
				else
				{
					//Recupera dados
					booklkivideoVO = this.LookDAOT.getBooklkivideo(Int32.Parse(this.txtCadBooklkivideoIdBookLkiVideo.Text));
				}

				booklkivideoVO.idBookLki = Int32.Parse(this.txtCadIdBookLki.Text);
				booklkivideoVO.url = this.txtCadBooklkivideoUrl.Text;
				booklkivideoVO.nome = this.txtCadBooklkivideoNome.Text;
				booklkivideoVO.edicao = DateTime.Now;
				booklkivideoVO.editadoPor = usuarioVO.user;

				//Chama metodo para salvar ou criar novo registro
				if (novoRegistro)
					booklkivideoVO.idBookLkiVideo = (int)this.LookDAOT.newBooklkivideo(booklkivideoVO);
				else
					this.LookDAOT.setBooklkivideo(booklkivideoVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro salvo com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Atualiza formulario, apos salvar os dados
				this.txtCadBooklkivideoIdBookLkiVideo.Text = booklkivideoVO.idBookLkiVideo.ToString();
				this.ltBooklkivideoCadastradoPor.Text = booklkivideoVO.cadastradoPor;
				this.ltBooklkivideoEditadoPor.Text = booklkivideoVO.editadoPor;
				this.ltBooklkivideoDataCadastro.Text = booklkivideoVO.cadastro.ToString("dd/MM/yyyy");
				this.ltBooklkivideoDataEdicao.Text = booklkivideoVO.edicao.ToString("dd/MM/yyyy");

				this.grvCadBooklkixBooklkivideo.DataSource = this.LookDAOT.getBooklkivideos(null, null, Int32.Parse(this.txtCadIdBookLki.Text));
				this.grvCadBooklkixBooklkivideo.DataBind();

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		protected void btnCadBooklkivideoCancelar_Click(object sender, EventArgs e)
		{
			//Volta para a tab page de pesquisa
			//this.tabBooklki.ActiveTabIndex = 0;

			// Desabilita os campos para edição
			Util.HabilitarCampos(false, this.panelBooklkivideo);

			// Destrava botão de edição
			this.btnCadBooklkivideoEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadBooklkivideoIdBookLkiVideo.Text));

			// Destrava botão de exclusao
			this.btnCadBooklkivideoExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadBooklkivideoIdBookLkiVideo.Text));

			// Detrava botão de novo
			this.btnCadBooklkivideoNovo.Enabled = true;

			// Desabilita o botão salvar
			this.btnCadBooklkivideoSalvar.Enabled = false;

		}

		protected void btnCadBooklkivideoEditar_Click(object sender, EventArgs e)
		{
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelBooklkivideo);

			// Trava apenas os text box da PK
			this.txtCadBooklkivideoIdBookLkiVideo.Enabled = false;

			// Trava botão de edição
			this.btnCadBooklkivideoEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadBooklkivideoExcluir.Enabled = false;

			// Trava botão de novo
			this.btnCadBooklkivideoNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadBooklkivideoSalvar.Enabled = true;

			this.txtCadBooklkivideoNome.Focus();
		}

		protected void btnCadBooklkivideoExcluir_Click(object sender, EventArgs e)
		{
			//Declara objetos
			BooklkivideoVO booklkivideoVO = null;

			try
			{
				//Cria objeto
				booklkivideoVO = BooklkivideoVO.CreateVO();
				booklkivideoVO.idBookLkiVideo = Int32.Parse(this.txtCadBooklkivideoIdBookLkiVideo.Text);

				//Chama metodo para excluir registro
				this.LookDAOT.delBooklkivideo(booklkivideoVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro excluido com sucesso!");

				//Limpa formulario, apos salvar os dados
				Util.LimparCampos(this.panelBooklkivideo);
				Util.HabilitarCampos(false, this.panelBooklkivideo);
				this.grvCadBooklkixBooklkivideo.DataSource = this.LookDAOT.getBooklkivideos(null, null, Int32.Parse(this.txtCadIdBookLki.Text));
				this.grvCadBooklkixBooklkivideo.DataBind();

				this.ltBooklkivideoCadastradoPor.Text = "";
				this.ltBooklkivideoEditadoPor.Text = "";
				this.ltBooklkivideoDataCadastro.Text = "";
				this.ltBooklkivideoDataEdicao.Text = "";

				// Trava botão de edição
				this.btnCadBooklkivideoEditar.Enabled = false;

				// Trava botão de exclusao
				this.btnCadBooklkivideoExcluir.Enabled = false;

				// Desabilita o botão salvar
				this.btnCadBooklkivideoSalvar.Enabled = false;

				// Habilita o botao novo
				this.btnCadBooklkivideoNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
			
		}
		protected void btnCadBooklkivideoNovo_Click(object sender, EventArgs e)
		{
			//Limpa formulario, para a entrada de novo registro
			Util.LimparCampos(this.panelBooklkivideo);
			// Habilita os campos para edição
				Util.HabilitarCampos(true, this.panelBooklkivideo);

			this.ltBooklkivideoCadastradoPor.Text = "";
			this.ltBooklkivideoEditadoPor.Text = "";
			this.ltBooklkivideoDataCadastro.Text = "";
			this.ltBooklkivideoDataEdicao.Text = "";

			// Trava apenas os text box da PK
			this.txtCadBooklkivideoIdBookLkiVideo.Enabled = false;

			// Trava botão de edição
			this.btnCadBooklkivideoEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadBooklkivideoExcluir.Enabled = false;

			// Trava botão de novo
			this.btnCadBooklkivideoNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadBooklkivideoSalvar.Enabled = true;

			this.txtCadBooklkivideoNome.Focus();

		}

		protected void imgbCadBooklkivideoVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			BooklkivideoVO booklkivideoVO = null;
			int idBookLkiVideo = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idBookLkiVideo = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				booklkivideoVO = this.LookDAOT.getBooklkivideo(idBookLkiVideo);

				this.txtCadBooklkivideoIdBookLkiVideo.Text = booklkivideoVO.idBookLkiVideo.ToString();
				this.txtCadBooklkivideoUrl.Text = booklkivideoVO.url;
				this.txtCadBooklkivideoNome.Text = booklkivideoVO.nome;
				this.ltBooklkivideoCadastradoPor.Text = booklkivideoVO.cadastradoPor;
				this.ltBooklkivideoEditadoPor.Text = booklkivideoVO.editadoPor;
				this.ltBooklkivideoDataCadastro.Text = booklkivideoVO.cadastro.ToString("dd/MM/yyyy");
				this.ltBooklkivideoDataEdicao.Text = booklkivideoVO.edicao.ToString("dd/MM/yyyy");

				//Desabilita campos para edição
				Util.HabilitarCampos(false, this.panelBooklkivideo);

				//Desabilita botão salvar
				this.btnCadBooklkivideoSalvar.Enabled = false;

				//Habilita botão editar
				this.btnCadBooklkivideoEditar.Enabled = true;

				//Habilita botão excluir
				this.btnCadBooklkivideoExcluir.Enabled = true;

				//Habilita botão novo
				this.btnCadBooklkivideoNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		#endregion

	}
}
